# -*- coding: UTF-8 -*-
'''
@Project ：pythonProject 
@File    ：strDemo10.py
@Author  ：jujuwei
@Date    ：2023/10/27 15:56 
'''
# python中的内置模块:re模块.用于实现python中的正则表达式操作
# re.match(pattern,string,flags=0):用于从字符串的开始位置进行匹配，如果起始位置匹配成功，结果为Match对象，否则结果为None。

import re

pattern = '\d\.\d+'  # +：限定符，一次或多次，\d:0-9的数字，\.：转义字符，相当于'.'。匹配一个小数
string1 = '盒子的高度是5.1cm，重量是8.01'  # 待匹配字符串
print(re.match(pattern, string1, re.I))  # re.I:忽略大小写,因为match是从头开始匹配的，所以返回None
print(re.search(pattern, string1, re.I))  # 因为search是从任意位置开始匹配的,返回match对象：<re.Match object; span=(7, 10), match='5.1'>

string2 = '5.1cm是盒子的高度,重量是8.01'
print(re.match(pattern, string2, re.I))  # 在string2的开头就匹配到了，所以返回match对象：<re.Match object; span=(0, 3), match='5.1'>
# 拿到匹配的字符串的位置：start()和end()方法
print('匹配值的起始位置：' + str(re.match(pattern, string2, re.I).start()) + '。匹配值的结束位置：' + str(
    re.match(pattern, string2, re.I).end()))  # 拿到匹配的字符串的位置
# 开始和结束区间位置的元素：span()方法
print('匹配区间位置的元素：', re.match(pattern, string2, re.I).span())
# 待匹配的字符串
print('待匹配的字符串:', re.match(pattern, string2, re.I).string)
# 待匹配的数据
print('待匹配的数据:', re.match(pattern, string2, re.I).group())
